11066. Марафонец

 

Бараш увлекся бегом. А чтобы не было скучно, во время бега он слушает музыку.

Сегодня Бараш забыл включить секундомер в начале пробежки, поэтому теперь не знает, сколько времени он бегал. Однако, он естественно не забыл включить музыку. Теперь он хочет вычислить длительность пробежки, используя информацию о песнях, которые он послушал.

Всего за время пробежки он целиком послушал n песен. Для каждой песни он выписал ее длительность в формате mm:ss. До двоеточия стоят ровно две цифры, обозначающие количество минут, а после – ровно две цифры, обозначающие количество секунд. Каждая песня длится строго меньше часа, количество минут и секунд лежат в отрезке от 0 до 59 включительно.

Помогите Барашу определить длительность пробежки и выведите ее в формате hh:mm:ss. Сначала ровно две цифры, обозначающие количество часов, затем две цифры – количество минут, и наконец – количество секунд. Гарантируется, что Бараш бегал строго меньше суток. Количество часов должно лежать в отрезке от 0 до 23, а количество минут и секунд – в отрезке от 0 до 59.

 

Вход. В первой строке дано одно целое число n (1 ≤ n ≤ 1000) – количество песен, которые Бараш успел послушать за время пробежки.

Далее даны n строк, каждая из которых имеет вид mm:ss – длительность очередной песни. Гарантируется, что длительности всех песен положительны.

 

Выход. Выведите длительность пробежки Бараша в формате hh:mm:ss. Гарантируется, что Бараш бегал строго меньше суток.

 

Пример входа 1

Пример выхода 1

2

10:01

00:59

00:11:00

 

 

Пример входа 2

Пример выхода 2

3

12:34

23:45

34:56

01:11:15

 

 

РЕШЕНИЕ

математика

 

Анализ алгоритма

Вычислим суммарную длину всех песен в секундах. Для этого переведем время каждой песни в секунды и прибавим ее к сумме res.

Теперь остается перевести res секунд в формат hh:mm:ss. Должно иметь место равенство: res = 3600 * hh + 60 * mm + ss. Отсюда

·        hh = res / 3600;

·        mm = (resh * 3600) / 60;

·        ss = res % 60;

 

Пример

Рассмотрим второй тест.

 

Суммарная длина песен в секундах равна 754 + 1425 + 2096 = 4275. Представим ее в формате hh:mm:ss.

·        hh = 4275 / 3600 = 1;

·        mm = (4275 – 1 * 3600) / 60  = 11;

·        ss = 4275 % 60 = 15;

Таким образом, 4275 секунд равны 1:11:15.

 

Реализация алгоритма

Читаем входные данные.

 

scanf("%d", &n);

res = 0;

 

for (i = 0; i < n; i++)

{

 

Длительность песни в x минут и y секунд переводим в секунды: 60 * x + y. Прибавляем ее к суммарной длине res всех песен.

 

  scanf("%d:%d", &x, &y);

  res += x * 60 + y;

}

 

Переводим res секунд в h часов m минут s секунд. Имеет место равенство:

res = 3600 * h + 60 * m + s

 

h = res / 3600;

m = (res - h * 3600) / 60;

s = res % 60;

 

Выводим ответ.

 

printf("%02d:%02d:%02d\n", h, m, s);